package com.cskaoyan.service;
import com.cskaoyan.bean.UserData;
import com.cskaoyan.bean.param.BaseParam;
import com.cskaoyan.bean.vo.*;
import com.cskaoyan.bean.pojo.MarketUser;

import com.cskaoyan.bean.vo.*;


import com.cskaoyan.bean.vo.CollectListVO;
import com.cskaoyan.bean.vo.DashboardVO;



import org.apache.ibatis.annotations.Param;


public interface UserService {
    UserData query(BaseParam param, String username);

    // 首页 展示 数据
    DashboardVO dashboard();

    /**
     * 用户管理-收货地址：获取全部用户的收货地址信息
     * 创建日期：2022/04/06 17:15
     * @param  param,name,userId 包含分页信息、按用户名查找、按用户id查找
     * @return com.cskaoyan.bean.vo.UserAddressListVO
     * @author ChengWenqi
     */
    UserAddressListVO queryAddressList(BaseParam param, String name, Integer userId);

    /**
     * 描述:用户管理-会员管理：根据条件、用户名或者手机号获取全部会员的信息，并根据时间顺序倒序排序
     * 创建日期:2022/04/06 19:55
     *
     * @param: baseParam
     * @param: username 用户名
     * @param: mobile 手机号
     * @return: com.cskaoyan.bean.vo.UserListVO
     * @author: HanWeiqi
     */
    UserListVO userList(BaseParam baseParam,String username, String mobile);

    /**
     *
     * 描述:用户管理-会员管理：根据用户id获取全部会员的信息
     * 创建日期:2022/04/06 20:10
     * @param:  id
     * @return: com.cskaoyan.bean.vo.UserListVO
     * @author: HanWeiqi
     */
    MarketUser userDetail(Integer id);

    /**
     * 会员收藏 --> 首页展示
     * 创建日期：2022/04/06 16:56
     *
     * @param page
     * @param limit
     * @param sort
     * @param order
     * @param userId  用户
     * @param valueId 商品
     * @return com.cskaoyan.bean.vo.CollectListVO
     * @author rebaogu
     */
    CollectListVO collectList(Integer page, Integer limit, String sort, String order, Integer userId, Integer valueId);

    /**
     * 用户管理-搜索历史：获取所有对商品的搜索历史记录，market_search_history表
     * 创建日期：2022/04/06 22:12
     * @param  param 分页信息
     * @param  keyword 搜索历史关键字
     * @param  userId 用户id
     * @return com.cskaoyan.bean.vo.UserHistoryListVO
     * @author ChengWenqi
     */
    UserHistoryListVO queryHistoryList(BaseParam param, String keyword, Integer userId);

    /**
     * 用户反馈 --> 首页展示
     * 创建日期：2022/04/06 17:41
     *
     * @param page
     * @param limit
     * @param username
     * @param sort
     * @param order
     * @param id
     * @return com.cskaoyan.bean.vo.FeedbackListVO
     * @author rebaogu
     */
    FeedbackListVO feedbackList(Integer page, Integer limit, String username, String sort, String order, Integer id);

    /**
     *
     * 描述:用户管理-会员足迹，根据条件获取用户足迹信息
     * 创建日期:2022/04/06 20:47
     * @param:  baseParam 分页信息
     * @param:  id  足迹id
     * @param:  goodsId  商品id
     * @return: com.cskaoyan.bean.vo.FootprintListVO
     * @author: HanWeiqi
     */
    FootprintListVO footprintList(BaseParam baseParam, Integer userId, Integer goodsId);

    //更新用户信息
    int updateUser(MarketUser marketUser);
}
